package com.leo.base_project.activity.login;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

import com.leo.base_project.R;
import com.leo.base_project.Utils.UIUtils;
import com.leo.base_project.activity.base.BaseActivityX;
import com.leo.base_project.activity.main.MainTestActivity;
import com.leo.base_project.entity.User;
import com.leo.base_project.entity.UserDao;

import org.apache.commons.lang3.StringUtils;

import java.util.Date;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

@SuppressLint("NonConstantResourceId")
public class LoginActivity extends BaseActivityX {

    @BindView(R.id.ed_login_username)
    EditText edUsername;
    @BindView(R.id.ed_login_password)
    EditText edPassword;

    UserDao userDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.bind(this);
        userDao = daoSession.getUserDao();
    }
    /*
     * 功能：判断登录事件
     * 创建时间: 2021/8/26 9:55
     * 创建者：Leo
     */
    public void login(View view) {
        // 判断空
        String username = edUsername.getText().toString();
        String password = edPassword.getText().toString();
        if (StringUtils.isBlank(username)){
            UIUtils.toast("用户名不能为空");
            return;
        }
        if (StringUtils.isBlank(password)){
            UIUtils.toast("密码不能为空");
            return;
        }
        // 判断用户名是否存在
        User user = getUserByUsername(username);
        if (user == null){
            UIUtils.toast("用户不存在");
            cleanInput(true);
            return;
        }
        // 判断用户名和密码是否正确
        if (!user.getPassword().equals(password)){
            UIUtils.toast("用户名或密码错误");
            cleanInput(false);
        }else {
            loginSuccess(user);
        }
    }

    /*
     * 功能：处理登录信息
     * 输入：User 用户
     * 创建时间: 2021/8/26 9:53
     * 创建者：Leo
     */
    private void loginSuccess(User user) {
        user.setLastLoginDate(new Date());
        userDao.save(user);
        Intent intent = new Intent();
        intent.putExtra("userId",user.getId());
        intent.setClass(this, MainTestActivity.class);
        startActivity(intent);
    }

    /*
     * 功能：通过用户名查找用户对象
     * 输入：username 用户名
     * 输出：User 用户对象
     * 创建时间: 2021/8/26 9:53
     * 创建者：Leo
     */
    private User getUserByUsername(String username) {
        // 少一点的时候可以这么操作
        List<User> users = userDao.loadAll();
        for (User user:users){
            if (user.getUsername().equals(username)){
                return user;
            }
        }
        return null;
    }

    /*
     * 功能：分情况清空对话框
     * 输入：boolean 是否清除用户名
     * 创建时间: 2021/8/26 9:54
     * 创建者：Leo
     */
    private void cleanInput(boolean username){
        if (username){
            edUsername.setText("");
        }
        edPassword.setText("");
    }

    /*
     * 功能：跳转到注册界面
     * 创建时间: 2021/8/26 9:54
     * 创建者：Leo
     */
    public void reg(View view) {
        startActivity(new Intent(this,RegActivity.class));
    }
}